#include "key.h"
#include "systick_timer.h"

void keyInit(uint16_t GPIO_Pinx){
	//定义GPIO结构体
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE,ENABLE);//时钟使能
	//设置GPIO各项参数
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;//寄存器输入模式
	GPIO_InitStruct.GPIO_Pin = GPIO_Pinx;	//4,5,6号端口
	GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉电阻设置默认电位
	//按照上面的配置参数初始化GPIOC
	GPIO_Init(GPIOE,&GPIO_InitStruct);	
}
uint8_t keyValue(uint16_t GPIO_Pinx){
	uint8_t ret = 0;
	if(0 == GPIO_ReadInputDataBit(GPIOE, GPIO_Pinx))	//抖动之前
	{
		systickTimerMs(20);
		
		if(0 == GPIO_ReadInputDataBit(GPIOE, GPIO_Pinx)){		//抖动之后
			ret = 1;											//按键按下
			while(0 == GPIO_ReadInputDataBit(GPIOE, GPIO_Pinx));	//按键松开
		}	
	}
	return ret;
		
}

void key4Init(void){
	//定义GPIO结构体
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC,ENABLE);//时钟使能
	//设置GPIO各项参数
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;//寄存器输入模式
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13;	//4,5,6号端口
	GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; //上拉电阻设置默认电位
	//按照上面的配置参数初始化GPIOC
	GPIO_Init(GPIOC,&GPIO_InitStruct);	
}
uint8_t key4Value(void){
	uint8_t ret = 0;
	if(0 == GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13))	//抖动之前
	{
		systickTimerMs(30);
		
		if(0 == GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13)){		//抖动之后
			ret = 1;											//按键按下
			while(0 == GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13));	//按键松开
		}	
	}
	return ret;
		
}


